import request from './request'

export const roleApi = {
  // 获取角色列表（分页）
  getRoleList(params) {
    return request({
      url: '/role/list',
      method: 'get',
      params
    })
  },

  // 获取所有角色（不分页）
  getAllRoles() {
    return request({
      url: '/role/all',
      method: 'get'
    })
  },

  // 获取角色详情
  getRoleDetail(id) {
    return request({
      url: `/role/${id}`,
      method: 'get'
    })
  },

  // 创建角色
  createRole(data) {
    return request({
      url: '/role',
      method: 'post',
      data
    })
  },

  // 更新角色
  updateRole(id, data) {
    return request({
      url: `/role/${id}`,
      method: 'put',
      data
    })
  },

  // 删除角色
  deleteRole(id) {
    return request({
      url: `/role/${id}`,
      method: 'delete'
    })
  },

  // 获取角色的权限ID列表
  getRolePermissions(id) {
    return request({
      url: `/role/${id}/permissions`,
      method: 'get'
    })
  },

  // 分配权限给角色
  assignPermissions(id, permissionIds) {
    return request({
      url: `/role/${id}/permissions`,
      method: 'post',
      data: { permissionIds }
    })
  }
}

export const permissionApi = {
  // 获取权限树
  getPermissionTree() {
    return request({
      url: '/permission/tree',
      method: 'get'
    })
  },

  // 获取菜单权限树
  getMenuTree() {
    return request({
      url: '/permission/menu-tree',
      method: 'get'
    })
  },

  // 获取权限详情
  getPermissionDetail(id) {
    return request({
      url: `/permission/${id}`,
      method: 'get'
    })
  },

  // 创建权限
  createPermission(data) {
    return request({
      url: '/permission',
      method: 'post',
      data
    })
  },

  // 更新权限
  updatePermission(id, data) {
    return request({
      url: `/permission/${id}`,
      method: 'put',
      data
    })
  },

  // 删除权限
  deletePermission(id) {
    return request({
      url: `/permission/${id}`,
      method: 'delete'
    })
  }
}

export const userRoleApi = {
  // 获取用户的角色列表
  getUserRoles(userId) {
    return request({
      url: `/user/${userId}/roles`,
      method: 'get'
    })
  },

  // 获取用户的角色ID列表
  getUserRoleIds(userId) {
    return request({
      url: `/user/${userId}/role-ids`,
      method: 'get'
    })
  },

  // 分配角色给用户
  assignRoles(userId, roleIds) {
    return request({
      url: `/user/${userId}/roles`,
      method: 'post',
      data: { roleIds }
    })
  },

  // 添加用户角色
  addUserRole(userId, roleId) {
    return request({
      url: `/user/${userId}/roles/${roleId}`,
      method: 'post'
    })
  },

  // 移除用户角色
  removeUserRole(userId, roleId) {
    return request({
      url: `/user/${userId}/roles/${roleId}`,
      method: 'delete'
    })
  }
}

